package a_doubleWrite;

import java.util.Arrays;

/**
 * 4. 寻找两个正序数组的中位数
 * 给定两个大小分别为 m 和 n 的正序（从小到大）数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
 *
 * @author: luolidong
 * @create: 2021-07-23 11:41
 * @version: 1.0
 */
public class L4 {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int len1 = nums1.length;
        int len2 = nums2.length;
        int a = 0, b = 0;
        int i = 0;
        int[] union = new int[len1 + len2];
        while (a < nums1.length || b < nums2.length) {
            int n1 = a < nums1.length ? nums1[a] : Integer.MAX_VALUE;
            int n2 = b < nums2.length ? nums2[b] : Integer.MAX_VALUE;
            if (n1 < n2) {
                union[i++] = n1;
                a++;
            } else {
                union[i++] = n2;
                b++;
            }
        }
        int mid = union.length / 2;
        if (union.length % 2 == 0) {
            int i1 = union[mid] + union[mid - 1];
            return (double) i1 / 2;
        } else {
            return union[mid];
        }
    }

    public static void main(String[] args) {
        L4 l4 = new L4();
        double ans = l4.findMedianSortedArrays(new int[]{}, new int[]{2});
        System.out.println(ans);
    }
}
